const int N=32;
bool primes[N];

auto Init=[]
{
    primes[1]=true;
    for(int i=2;i<=N/i;++i)
        if(!primes[i])
            for(int j=i*i;j<N;j+=i) primes[j]=true;
    return 0;
}();

class Solution {
public:
    int countPrimeSetBits(int left, int right) {
        int res=0;
        for(int i=left;i<=right;++i)
        {
            int t=0;
            for(int j=0;j<32;++j)
            {
                t+=((i>>j)&1);
            }
            if(!primes[t]) ++res;
        }
        return res;
    }
};